package com.csht.service;

import java.util.List;
import java.util.Map;

import com.csht.model.City;
import com.csht.model.CshtLunbo;
import com.csht.model.Province;
import com.csht.model.School;
import com.csht.vo.index.menu.CshtOneMenuVo;
import com.csht.vo.index.shangpinzhangqu.CshtGoodsVo_2;
import com.csht.vo.index.shangpinzhangqu.CshtTwoMenuVo_2;
import com.csht.vo.index.shangpinzhangqu.ShangPinZhangQu;
import com.csht.vo.index.tenGoods.CshtGoodsVo;
import com.csht.vo.index.tenGoods.CshtTenGoodsEverydayVo;

public interface IndexService {
	
	/**
	 * 获取全部省份
	 * @param provinceUrl
	 * @return
	 * @throws Exception
	 */
	public List<Province> getAllProvince(String provinceUrl) throws Exception;
	
	/**
	 * 根据省id获取该省全部城市
	 * @param cityUrl
	 * @param provinceId
	 * @return
	 * @throws Exception
	 */
	public List<City> getAllCityByProvinceId(String cityUrl, Integer provinceId) throws Exception;
	
	/**
	 * 根据城市名获取学校
	 * @param schoolUrl
	 * @param cityName
	 * @return
	 * @throws Exception
	 */
	public List<School> getAllSchoolByCityName(String schoolUrl, String cityName) throws Exception;
	
	/**
	 * 获取一、二、三级菜单
	 * @return
	 * @throws Exception
	 */
	public List<CshtOneMenuVo> getAllMenu() throws Exception;
	
	/**
	 * 获取轮播图片
	 * @return
	 * @throws Exception
	 */
	public List<CshtLunbo> getLunbo() throws Exception;
	
	/**
	 * 每日十件商品扩展
	 * @return
	 * @throws Exception
	 */
	public List<CshtTenGoodsEverydayVo> getTenGoods() throws Exception;
	
	/**
	 * 首页商品展区数据
	 * @return
	 * @throws Exception
	 */
	public List<ShangPinZhangQu> getShangPinZhangQu() throws Exception;
	
	/**
	 * 有用户登录时，随机查询十条商品记录封装到每日十件区
	 * @param goodsTradeSchool
	 * @return
	 * @throws Exception
	 */
	public List<CshtGoodsVo> getTenGoodsToLoginUser(String goodsTradeSchool) throws Exception;
	
	/**
	 * 有用户登录时，商品展区获取一级菜单
	 * @return
	 * @throws Exception
	 */
	public List<ShangPinZhangQu> getOneMenuAndBanner() throws Exception;
	
	/**
	 * 有用户登录时,商品展区获取二级菜单
	 * @param oneMenuId
	 * @return
	 * @throws Exception
	 */
	public List<CshtTwoMenuVo_2> getTTMG(Integer userId) throws Exception;
	
	/**
	 * 根据用户id查询未读消息数量
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Integer getNoticeNumberByUserId(Integer userId) throws Exception;
	
	/**
	 * 根据用户id查找该用户正在出售商品的数量
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Integer getGoodsNumberByLoginUser(Integer userId) throws Exception;
	
	/**
	 * 根据用户id查找正处于交易中的商品数量
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Integer getTradingGoodsNumberByUserId(Integer userId) throws Exception;
	
	/**
	 * 根据用户id查找交易成功的数量
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Integer getTradingSuccessNumberByUserId(Integer userId) throws Exception;
	
	/**
	 * 根据用户id查找已下架的商品数量
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Integer getShelvesNumberByUserId(Integer userId) throws Exception;
	
	/**
	 * 根据定位地址变化查找商品（每日十件区）
	 * @param address
	 * @return
	 * @throws Exception
	 */
	public List<CshtGoodsVo> getGoodsByAddress(String address) throws Exception;
	
	/**
	 * 定位改变时，根据二级菜单id和用户地址查找商品
	 * @param twoMenuId
	 * @param position
	 * @return
	 * @throws Exception
	 */
	public List<CshtGoodsVo_2> getGoodsByTwoMenuIdAndposition(Map<String, String> tIdAndPName) throws Exception;
	
	/**
	 * (定位改变)商品展区获取一级菜单（封装二级菜单和banner图）
	 * @return
	 * @throws Exception
	 */
	public List<ShangPinZhangQu> getOneMenu() throws Exception;

	
	
}
